﻿using System;
namespace Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister {
    
    
    public partial class PolIsik2 : global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IPolIsik2 {
        
        private decimal @__id;
        
        private string @__eesnimi;
        
        private string @__perenimi;
        
        private string @__isikukood;
        
        private string @__synniaeg;
        
        private string @__synniriik;
        
        private string @__telefon;
        
        private string @__elukoht;
        
        private string @__foto;
        
        private string @__allkiri;
        
        private bool @__juhtimisoigusKehtib;
        
        private PolIsik2.IJuhiloadType @__juhiload;
        
        private PolIsik2.IJuhtimisoigusedType @__juhtimisoigused;
        
        private PolIsik2.IJuhtimisoiguseKategooriadType @__juhtimisoiguseKategooriad;
        
        public PolIsik2() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public PolIsik2(decimal @id, string @eesnimi, string @perenimi, string @isikukood, string @synniaeg, string @synniriik, string @telefon, string @elukoht, string @foto, string @allkiri, bool @juhtimisoigusKehtib, PolIsik2.IJuhiloadType @juhiload, PolIsik2.IJuhtimisoigusedType @juhtimisoigused, PolIsik2.IJuhtimisoiguseKategooriadType @juhtimisoiguseKategooriad) {
            this.@__id = @id;
            this.@__eesnimi = @eesnimi;
            this.@__perenimi = @perenimi;
            this.@__isikukood = @isikukood;
            this.@__synniaeg = @synniaeg;
            this.@__synniriik = @synniriik;
            this.@__telefon = @telefon;
            this.@__elukoht = @elukoht;
            this.@__foto = @foto;
            this.@__allkiri = @allkiri;
            this.@__juhtimisoigusKehtib = @juhtimisoigusKehtib;
            this.@__juhiload = @juhiload;
            this.@__juhtimisoigused = @juhtimisoigused;
            this.@__juhtimisoiguseKategooriad = @juhtimisoiguseKategooriad;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected PolIsik2(IPolIsik2 @polIsik2) {
            this.@__id = @polIsik2.Id;
            this.@__eesnimi = @polIsik2.Eesnimi;
            this.@__perenimi = @polIsik2.Perenimi;
            this.@__isikukood = @polIsik2.Isikukood;
            this.@__synniaeg = @polIsik2.Synniaeg;
            this.@__synniriik = @polIsik2.Synniriik;
            this.@__telefon = @polIsik2.Telefon;
            this.@__elukoht = @polIsik2.Elukoht;
            this.@__foto = @polIsik2.Foto;
            this.@__allkiri = @polIsik2.Allkiri;
            this.@__juhtimisoigusKehtib = @polIsik2.JuhtimisoigusKehtib;
            this.@__juhiload = @polIsik2.Juhiload;
            this.@__juhtimisoigused = @polIsik2.Juhtimisoigused;
            this.@__juhtimisoiguseKategooriad = @polIsik2.JuhtimisoiguseKategooriad;
        }
        
        public virtual decimal Id {
            get {
                return this.@__id;
            }
            set {
                this.@__id = value;
            }
        }
        
        public virtual string Eesnimi {
            get {
                return this.@__eesnimi;
            }
            set {
                this.@__eesnimi = value;
            }
        }
        
        public virtual string Perenimi {
            get {
                return this.@__perenimi;
            }
            set {
                this.@__perenimi = value;
            }
        }
        
        public virtual string Isikukood {
            get {
                return this.@__isikukood;
            }
            set {
                this.@__isikukood = value;
            }
        }
        
        public virtual string Synniaeg {
            get {
                return this.@__synniaeg;
            }
            set {
                this.@__synniaeg = value;
            }
        }
        
        public virtual string Synniriik {
            get {
                return this.@__synniriik;
            }
            set {
                this.@__synniriik = value;
            }
        }
        
        public virtual string Telefon {
            get {
                return this.@__telefon;
            }
            set {
                this.@__telefon = value;
            }
        }
        
        public virtual string Elukoht {
            get {
                return this.@__elukoht;
            }
            set {
                this.@__elukoht = value;
            }
        }
        
        public virtual string Foto {
            get {
                return this.@__foto;
            }
            set {
                this.@__foto = value;
            }
        }
        
        public virtual string Allkiri {
            get {
                return this.@__allkiri;
            }
            set {
                this.@__allkiri = value;
            }
        }
        
        public virtual bool JuhtimisoigusKehtib {
            get {
                return this.@__juhtimisoigusKehtib;
            }
            set {
                this.@__juhtimisoigusKehtib = value;
            }
        }
        
        public virtual PolIsik2.IJuhiloadType Juhiload {
            get {
                return this.@__juhiload;
            }
            set {
                this.@__juhiload = value;
            }
        }
        
        public virtual PolIsik2.IJuhtimisoigusedType Juhtimisoigused {
            get {
                return this.@__juhtimisoigused;
            }
            set {
                this.@__juhtimisoigused = value;
            }
        }
        
        public virtual PolIsik2.IJuhtimisoiguseKategooriadType JuhtimisoiguseKategooriad {
            get {
                return this.@__juhtimisoiguseKategooriad;
            }
            set {
                this.@__juhtimisoiguseKategooriad = value;
            }
        }
        
        public partial class JuhiloadType : IJuhiloadType {
            
            private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiluba> @__juhiluba = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiluba>();
            
            public JuhiloadType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public JuhiloadType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiluba> @juhiluba) {
                this.@__juhiluba = @juhiluba;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected JuhiloadType(IJuhiloadType @juhiloadType) {
                this.@__juhiluba = @juhiloadType.Juhiluba;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiluba> Juhiluba {
                get {
                    return this.@__juhiluba;
                }
                set {
                    this.@__juhiluba = value;
                }
            }
        }
        
        public interface IJuhiloadType {
            
            System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiluba> Juhiluba {
                get;
                set;
            }
        }
        
        public partial class JuhtimisoigusedType : IJuhtimisoigusedType {
            
            private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoigus> @__juhtimisoigus = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoigus>();
            
            public JuhtimisoigusedType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public JuhtimisoigusedType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoigus> @juhtimisoigus) {
                this.@__juhtimisoigus = @juhtimisoigus;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected JuhtimisoigusedType(IJuhtimisoigusedType @juhtimisoigusedType) {
                this.@__juhtimisoigus = @juhtimisoigusedType.Juhtimisoigus;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoigus> Juhtimisoigus {
                get {
                    return this.@__juhtimisoigus;
                }
                set {
                    this.@__juhtimisoigus = value;
                }
            }
        }
        
        public interface IJuhtimisoigusedType {
            
            System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoigus> Juhtimisoigus {
                get;
                set;
            }
        }
        
        public partial class JuhtimisoiguseKategooriadType : IJuhtimisoiguseKategooriadType {
            
            private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoiguseKategooria> @__juhtimisoiguseKategooria = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoiguseKategooria>();
            
            public JuhtimisoiguseKategooriadType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public JuhtimisoiguseKategooriadType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoiguseKategooria> @juhtimisoiguseKategooria) {
                this.@__juhtimisoiguseKategooria = @juhtimisoiguseKategooria;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected JuhtimisoiguseKategooriadType(IJuhtimisoiguseKategooriadType @juhtimisoiguseKategooriadType) {
                this.@__juhtimisoiguseKategooria = @juhtimisoiguseKategooriadType.JuhtimisoiguseKategooria;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoiguseKategooria> JuhtimisoiguseKategooria {
                get {
                    return this.@__juhtimisoiguseKategooria;
                }
                set {
                    this.@__juhtimisoiguseKategooria = value;
                }
            }
        }
        
        public interface IJuhtimisoiguseKategooriadType {
            
            System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhtimisoiguseKategooria> JuhtimisoiguseKategooria {
                get;
                set;
            }
        }
    }
}
